package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.Goods;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

/**
 * @description 商品信息
 */
@Repository
public interface GoodsDao {


    String getMaxCode();


    //默认首页
    List<Goods> listInventory(@Param("page") Integer page,@Param("rows") Integer rows, @Param("codeOrName") String codeOrName,@Param("goodsTypeId") Integer goodsTypeId);

    void save(Goods goods);

    void update(Goods goods);

    Integer delete(@Param("goodsId") Integer goodsId);

    // 无库存商品列表展示（可以根据商品名称或编码查询）
    List<Goods> getNoInventoryQuantity(@Param("offSet") int offSet, @Param("rows") Integer rows,@Param("nameOrCode") String nameOrCode);

    //getHasInventoryQuantity
    List<Goods> getHasInventoryQuantity(int offSet, Integer rows, String nameOrCode);

    // 添加库存、修改数量或成本价
    void saveStock(@Param("goodsId") Integer goodsId, @Param("inventoryQuantity") Integer inventoryQuantity, @Param("purchasingPrice") BigDecimal purchasingPrice);
    //删除库存（要判断商品状态 入库、有进货和销售单据的不能删除）
    Integer deleteStock(@Param("goodsId") Integer goodsId);

    //查询所有 当前库存量 小于 库存下限的商品信息
    List<Goods> listAlarm();


}
